<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Java进阶之路</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <meta name="description" content="Description">
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <link rel="icon" href="./dog1.jpg">
  <link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
  <link rel="stylesheet" href="//unpkg.com/gitalk/dist/gitalk.css">
  <link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
  <link rel="stylesheet" href="./custom/style/docs.css">
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css">
  <link rel="stylesheet" href="./custom/style/custom.css">
  <!--设置卡通人物1-->
    <!--<script src="https://cdn.jsdelivr.net/npm/live2d-widget@3.0.4/lib/L2Dwidget.min.js"></script>
     <script>
         L2Dwidget.init();
      </script>-->
      <!--设置卡通人物2-->
      <script src="live2d-widget-master/autoload.js"></script>
      <script src="https://g.joyinshare.com/hc/piao.js" type="text/javascript"></script>
   
   <span id="timeDate">载入天数...</span><span id="times">载入时分秒...</span>
   <script>
       var now = new Date(); 
       function createtime() { 
           var grt= new Date("04/01/2020 08:38:00");//在此处修改你的建站时间，格式：月/日/年 时:分:秒
           now.setTime(now.getTime()+250); 
           days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); 
           hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); 
           if(String(hnum).length ==1 ){hnum = "0" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); 
           mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = "0" + mnum;} 
           seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); 
           snum = Math.round(seconds); if(String(snum).length ==1 ){snum = "0" + snum;} 
           document.getElementById("timeDate").innerHTML = "本站已安全运行 "+dnum+" 天 "; 
           document.getElementById("times").innerHTML = hnum + " 小时 " + mnum + " 分 " + snum + " 秒"; 
       } 
   setInterval("createtime()",250);
   </script>
</head>
<body>
  <div class="doc-directory">
    <ul class="title-content"></ul>
    <div class="header">
      <img class="menu-img" src="./menu.png" alt="menu" />
    </div>
  </div>
  <div id="back-to-top" class="backtop" title="回到顶部" >
    <img class="backtop-img" src="./backtop.png" alt="backtop" />
  </div>
  <div id="app">正在猛烈加速中，稍等片刻</div>
  <script>
    window.$docsify = {
      el: '#app',
      name: '<marquee><font color="#FF0000">J</font><font color="#DF0020">a</font><font color="#BF0040">v</font><font color="#9F0060">a</font><font color="#7F0080">进</font><font color="#5F00A0">阶</font><font color="#3F00C0">之</font><font color="#1F00E0">路</font></marquee>',
      repo: 'https://github.com/codefool0307/JavaStudyer',
      ga: 'UA-150864629-1',
      subMaxLevel: 6,//控制目录栏到达几层
      maxLevel: 6,
      autoHeader: true,
      auto2top: true,
      mergeNavbar: true,
      formatUpdated: '{YYYY}-{MM}-{DD} {HH}:{mm}:{ss}',
      coverpage: true,
      loadNavbar: true,
      loadSidebar: true,
      notFoundPage: '_404.md',
       //统计字数
       count:{
                countable:true,
                fontsize:'0.9em',
                color:'rgb(90,90,90)',
                language:'chinese'
                },
        copyCode: {
                buttonText : '复制',
                errorText  : '复制失败，大哥大姐',
                successText: '唉呀妈呀，你粘上我了！'
                },
                //查找
        search: {
                paths: 'auto',
                placeholder: '🔍 搜索你想要的找的内容 ',
                noData: '😞 大哥，大姐，还没有写，你可以给我留言，我会优先补充的! ',
                depth: 6
                },
        pagination: {
                    previousText: '上一部分',
                    nextText: '下一部分',
                    },
      plugins: [
        // git talk
        function (hook, vm) {
          hook.doneEach(function(){
            let path = vm.route.path.split('/').join('');
            let domObj = Docsify.dom;
            let main = domObj.getNode("#main");
            Array.apply(null,document.querySelectorAll("div.gitTalk-container")).forEach(function(ele){
              ele.remove();
            });
            
            let divEle = domObj.create("div");
            divEle.id = `gitTalk-container-${path}`;
            divEle.className = "gitTalk-container";
            divEle.style = `width: ${main.clientWidth}px; margin: 0 auto 20px;`;
            domObj.appendTo(domObj.find(".content"), divEle);
            // Directory folding
          })
        },
        //页脚
        function(hook) {
      var footer = [
        '<footer align="center>',
        '<span><a href="https://github.com/codefool0307/JavaStudyer">codefool0307</a> &copy;2020.</span>',
        '<span>保留所有权利 <a href="https://github.com/codefool0307/JavaStudyer" target="_blank">codefool0307</a>.</span>',
        '</footer>'
      ].join('');

      hook.afterEach(function(html) {
        return html + footer;
      });
    },

        //跳转到相应的页面
        function(hook, vm) {
          hook.beforeEach(function (html) {
            var url = `https://github.com/codefool0307/JavaScholar/tree/master/docsr/${vm.route.file}`;
            var gotoHTML = `[📝 GOTO DOCUMENT](${url})\n`;

            return gotoHTML + html + '\n----\n' + 'Last modified <strong>{docsify-updated}</strong>';
          })
        }
      ]
    }
  </script>

  <!--1.搜索插件-->
  <script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.js"></script>
  <script async defer type="text/javascript" src="public/plugins/ga.min.js"></script>
  <!--2. 语言高亮 -->	
  <!--Java代码高亮-->
  <script async defer type="text/javascript" src="public/plugins/components/prism-java.min.js"></script>
  <script async defer type="text/javascript" src="public/plugins/components/prism-javascript.min.js"></script>
	<script async defer type="text/javascript" src="public/plugins/components/prism-bash.min.js"></script>
	<script async type="text/javascript" src="public/plugins/components/prism-markdown.min.js"></script>
	<!--3. 引入图片缩放 -->
	<script type="text/javascript" src="public/plugins/components/zoom-image-cdn.js"></script>

  <script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
  <script src="//unpkg.com/docsify/lib/plugins/ga.min.js"></script>
  <!--<script src="//unpkg.com/prismjs/components/prism-bash.js"></script>-->

  <!-- <script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script> -->
  <script src="//unpkg.com/docsify/lib/plugins/external-script.js"></script>
  <script src="//unpkg.com/docsify/lib/plugins/gitalk.min.js"></script>
  <script src="//unpkg.com/gitalk/dist/gitalk.min.js"></script>
  <!-- 复制到剪切板-->
	<script src="https://unpkg.com/docsify-copy-code@2"></script>
  <!-- 点击红心效果 -->
  <script async defer type="text/javascript" src="public/plugins/components/love-click.min.js"></script>
  <!--统计访问量插件-->
  <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
  <!-- 加密 -->
  <script type="text/javascript" src="public/plugins/components/md5.min.js"></script>MD5
<!--分页插件-->
<script src="//unpkg.com/docsify-pagination/dist/docsify-pagination.min.js"></script>
<!--字数统计-->>
<script src="//unpkg.com/docsify-count/dist/countable.js"></script>
  <script type="text/javascript" src="public/plugins/components/gitalk.min.js"></script>
 
  <!-- <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> -->
  <script>
    const gitalk = new Gitalk({
        clientID: 'd4fb44fe82c102eb80f4',
            clientSecret: '1be4e1a434a439e7f308253d30da074991453b98',
            repo: 'JavaStudyer',	// //存储你评论 issue 的 Github 仓库名
            owner: 'codefool0307',
            admin: ['codefool0307'],	// 这个仓库的管理员
            title: decodeURI(window.title_id),
            distractionFreeMode: true,	// 是否添加全屏遮罩
            id: md5(window.location.hash),	// 页面的唯一标识，gitalk 会根据这个标识自动创建的issue的标签,我们使用页面的相对路径作为标识
            enableHotKey: true,	// 提交评论快捷键(cmd/ctrl + enter) 
    })
  </script>
  <script>
    // serviceWorker is too slow for user
    // if (typeof navigator.serviceWorker !== 'undefined') {
    //   navigator.serviceWorker.register('serviceWorker.js')
    // }
  </script>
  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-150864629-1"></script>
  <script src="./custom/js/backtop.js"></script>
  <script>
    let fadeTime = 1500;
    let animateTime = 1000;
    let height = 100;
    let hList = [];
    $(function() {
      let back2Top = $("#back-to-top");
      let docDirectory = $('.doc-directory');

      $(window).scroll(function() {
        if (!tContent.is(':hidden')) {
          tContent.fadeOut(500);
        }
        if ($(window).scrollTop() > height) {
          back2Top.fadeIn(fadeTime);
        } else {
          back2Top.fadeOut(fadeTime);
        }
      });

      // back to top
      back2Top.draggable();
      back2Top.click(function() {
        back2Top.animate({ top: 'toggle' }, animateTime);
        if ($('html').scrollTop()) {
          $('html').animate({ scrollTop: 0 }, animateTime);
          return false;
        }
        $('body').animate({ scrollTop: 0 }, animateTime);
        return false;            
      });

      // doc directory
      let tContent = $('.title-content');
      
      // docDirectory.draggable();
      $('.header').click(function(e) {
        e.stopPropagation();
        if (tContent.is(':hidden')) {
          tContent.fadeIn(500);
        } else {
          tContent.fadeOut(500);
        }
        setTitle({
          docDirectory,
          tContent
        });
      });

      $(window).bind('hashchange', function() {
        const active = document.querySelector('.active');
        if (active) {
          active.scrollIntoView({
            behavior: 'smooth',
            block: 'center',
          });
        }
        setTitle({
          docDirectory,
          tContent,
        });
      });
    });

    function setTitle({
      docDirectory,
      tContent,
    }) {
      let mainCategoryPath = location.hash.split('/').slice(0, 3).join('/');
      tContent.empty();
      tContent.append(`
        <li class="home-title common">
          <div class="wrapper">
            <p>
              <a class="anchor" href="https://github.com/codefool0307/JavaStudyer">codefool0307小目录</a>
            </p>
          </div>
        </li>
        <li class="category-title common">
          <div class="wrapper">
            <span class="dot"></span>
            <a class="anchor" href="${mainCategoryPath}/guide">回到上一级目录</a>
          </div>
        </li>
      `);
      
      hList = $('.content h2, h3, h4, h5');
      if (hList.length) {
        hList.each(function() {
          let tagName = this.tagName.toLowerCase();
          let [path, hash] = location.hash.split('?');
          let params = hash ? decodeURIComponent(hash.split('=')[1]) : '';
          let active = this.id === params;
          let dotActive = active ? 'dot-active' : '';
          let aActive = active ? 'active' : '';
          tContent.append(`
            <li class="${tagName}-title common">
              <div class="wrapper" title="${this.outerText}">
                <span class="dot ${dotActive}"></span>
                <a class="anchor ${aActive}" href="${path}?id=${this.id}">${this.outerText}</a>
              </div>
            </li>
          `);
        });
      } else {
        hList = $('.content ul');
        tContent.append(hList.clone());
      }
    }
  </script>
  <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());

    gtag('config', 'UA-150864629-1');
  </script>
   
</body>
</html>
